One or more embodiments disclosed within this specification relate to optimization of local memory usage.
When a software application is executed, local memory resources, such as random access memory (RAM), are allocated for processing of the application. In any particular system, the amount of RAM available is limited, and must be shared among various applications executed on the processing system. When multiple applications are executed on a processing system, the amount of RAM available in the processing system may not be sufficient to accommodate all of the RAM storage that is necessary.
Systems oftentimes are configured to implement memory virtualization to utilize a persistent data storage device, such as a hard disk drive (HDD), to store data normally stored in RAM. In such instances, the storage space used to store the data normally configured to be stored in RAM typically is referred to as “virtual memory.” Although the use of virtual memory can prevent a system from encountering an “out of memory” condition when large amounts of data are targeted to be stored in RAM, persistent data storage devices usually are much slower that RAM. More particularly, persistent data storage devices typically have lower input/out bandwidth than RAM. Thus, when virtual memory is used, the performance (e.g., speed) of application execution usually is degraded.